/* eslint-disable no-unused-vars */

// 对Date的扩展，将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符，
// 年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
// (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18
Date.prototype.Format = function (fmt) {
  var o = {
    "M+": this.getMonth() + 1,                 //月份
    "d+": this.getDate(),                    //日
    "h+": this.getHours(),                   //小时
    "m+": this.getMinutes(),                 //分
    "s+": this.getSeconds(),                 //秒
    "q+": Math.floor((this.getMonth() + 3) / 3), //季度
    "S": this.getMilliseconds()             //毫秒
  };
  if (/(y+)/.test(fmt))
    fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
  for (var k in o)
    if (new RegExp("(" + k + ")").test(fmt))
      fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
  return fmt;
};

export function formatDate(times, pattern) {
  let d = new Date(times).Format("yyyy-MM-dd hh:mm:ss");
  if (pattern) {
    d = new Date(times).Format(pattern);
  }
  return d.toLocaleString();
}

export function getDay(day) {
  var today = new Date();
  var targetday_milliseconds = today.getTime() + 1000 * 60 * 60 * 24 * day;
  today.setTime(targetday_milliseconds); //注意，这行是关键代码
  var tYear = today.getFullYear();
  var tMonth = today.getMonth();
  var tDate = today.getDate();
  tMonth = doHandleMonth(tMonth + 1);
  tDate = doHandleMonth(tDate);
  return tYear + "-" + tMonth + "-" + tDate;
}

export function getDate(day) {
  var today = new Date();
  var targetday_milliseconds = today.getTime() + 1000 * 60 * 60 * 24 * day;
  return new Date(targetday_milliseconds);
}

export function doHandleMonth(month) {
  var m = month;
  if (month.toString().length == 1) {
    m = "0" + month;
  }
  return m;
}

export function getLastWeek() {
  let now = new Date().getDay();
  let week = [];
  for (let i = 0; i < 7; i++) {
    //周日开始 7 周一开始 8
    week.push(getDay(-6 + i))
  }
  return week;
}

export function getNextWeek() {
  let now = new Date().getDay();
  let week = [];
  let w = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日']
  for (let i = 0; i < 7; i++) {
    //周日开始 7 周一开始 8
    week.push({"d": getDay((8 - now) + i), "w": w[i]})
    // week.push(w[i] + " " + getDay((7 - now) + i));
    //data.push(w[i] + " " + this.getDay(i));

  }
  return week;
}

export function getDayWeek() {
  let week = [];
  let w = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
  for (let i = 0; i < 7; i++) {
    //周日开始 7 周一开始 8
    //week.push({"day":getDay(i),"week":w[getDate(i).getDay()]})
    week.push({
      "w": w[getDate(i).getDay()],
      "d": getDay(i)
    });
  }
  return week;
}


